      SUBROUTINE calc_E(E,x,c)
      DOUBLE PRECISION tt(4)
      DOUBLE PRECISION E(1,*)
      DOUBLE PRECISION c(3,*)
      DOUBLE PRECISION x(5,*)
      tt(1) = c(3,1)*x(4,1)+c(2,1)*x(2,1)+c(1,1)*x(1,1)
      tt(2) = c(3,1)*x(5,1)+c(2,1)*x(3,1)
      tt(3) = c(3,2)*x(4,1)+x(2,1)*c(2,2)+x(1,1)*c(1,2)
      tt(4) = c(3,2)*x(5,1)+c(2,2)*x(3,1)
      E(1,1) = (tt(4)**2+tt(3)**2-1)**2+2*(tt(2)*tt(4)+tt(1)*tt(3))**2+(
     1   tt(2)**2+tt(1)**2-1)**2
      END
      SUBROUTINE calc_E_J(E_J,x,c)
      DOUBLE PRECISION tt(7)
      DOUBLE PRECISION E_J(1,*)
      DOUBLE PRECISION c(3,*)
      DOUBLE PRECISION x(5,*)
      tt(1) = c(3,1)*x(4,1)+c(2,1)*x(2,1)+c(1,1)*x(1,1)
      tt(2) = c(3,1)*x(5,1)+c(2,1)*x(3,1)
      tt(3) = tt(2)**2+tt(1)**2-1
      tt(4) = c(3,2)*x(4,1)+x(2,1)*c(2,2)+x(1,1)*c(1,2)
      tt(5) = c(3,2)*x(5,1)+c(2,2)*x(3,1)
      tt(6) = tt(2)*tt(5)+tt(1)*tt(4)
      tt(7) = tt(5)**2+tt(4)**2-1
      E_J(1,1) = 4*c(1,2)*tt(4)*tt(7)+4*(c(1,1)*tt(4)+tt(1)*c(1,2))*tt(6
     1   )+4*tt(1)*c(1,1)*tt(3)
      E_J(1,2) = 4*c(2,2)*tt(4)*tt(7)+4*(c(2,1)*tt(4)+tt(1)*c(2,2))*tt(6
     1   )+4*tt(1)*c(2,1)*tt(3)
      E_J(1,3) = 4*c(2,2)*tt(5)*tt(7)+4*(c(2,1)*tt(5)+tt(2)*c(2,2))*tt(6
     1   )+4*tt(2)*c(2,1)*tt(3)
      E_J(1,4) = 4*c(3,2)*tt(4)*tt(7)+4*(c(3,1)*tt(4)+tt(1)*c(3,2))*tt(6
     1   )+4*tt(1)*tt(3)*c(3,1)
      E_J(1,5) = 4*c(3,2)*tt(5)*tt(7)+4*(c(3,1)*tt(5)+tt(2)*c(3,2))*tt(6
     1   )+4*tt(2)*tt(3)*c(3,1)
      END
      SUBROUTINE calc_E_H(E_H,x,c)
      DOUBLE PRECISION tt(43)
      DOUBLE PRECISION E_H(5,*)
      DOUBLE PRECISION c(3,*)
      DOUBLE PRECISION x(5,*)
      tt(1) = c(1,1)**2
      tt(2) = c(3,1)*x(4,1)+c(2,1)*x(2,1)+c(1,1)*x(1,1)
      tt(3) = tt(2)**2
      tt(4) = c(1,2)**2
      tt(5) = c(3,2)*x(4,1)+x(2,1)*c(2,2)+x(1,1)*c(1,2)
      tt(6) = tt(5)**2
      tt(7) = c(1,1)*tt(5)+c(1,2)*tt(2)
      tt(8) = c(3,1)*x(5,1)+c(2,1)*x(3,1)
      tt(9) = tt(8)**2
      tt(10) = tt(9)+tt(3)-1
      tt(11) = c(3,2)*x(5,1)+c(2,2)*x(3,1)
      tt(12) = tt(8)*tt(11)+tt(2)*tt(5)
      tt(13) = tt(11)**2
      tt(14) = tt(13)+tt(6)-1
      tt(15) = c(2,1)*tt(5)+tt(2)*c(2,2)
      tt(16) = 4*tt(7)*tt(15)+4*c(1,2)*c(2,2)*tt(14)+4*(c(1,1)*c(2,2)+c(
     1   1,2)*c(2,1))*tt(12)+4*c(1,1)*c(2,1)*tt(10)+8*c(1,2)*c(2,2)*tt(6
     2   )+8*c(1,1)*c(2,1)*tt(3)
      tt(17) = c(2,1)*tt(11)+c(2,2)*tt(8)
      tt(18) = 4*tt(7)*tt(17)+8*c(1,2)*c(2,2)*tt(5)*tt(11)+8*c(1,1)*tt(2
     1   )*c(2,1)*tt(8)
      tt(19) = c(3,1)*tt(5)+tt(2)*c(3,2)
      tt(20) = 4*tt(7)*tt(19)+4*c(1,2)*c(3,2)*tt(14)+4*(c(1,1)*c(3,2)+c(
     1   1,2)*c(3,1))*tt(12)+4*c(1,1)*c(3,1)*tt(10)+8*c(1,2)*c(3,2)*tt(6
     2   )+8*c(1,1)*tt(3)*c(3,1)
      tt(21) = c(3,1)*tt(11)+c(3,2)*tt(8)
      tt(22) = 4*tt(7)*tt(21)+8*c(1,2)*c(3,2)*tt(5)*tt(11)+8*c(1,1)*tt(2
     1   )*c(3,1)*tt(8)
      tt(23) = c(2,1)**2
      tt(24) = c(2,2)**2
      tt(25) = 4*tt(10)*tt(23)
      tt(26) = 8*c(2,1)*c(2,2)*tt(12)
      tt(27) = 4*tt(14)*tt(24)
      tt(28) = 8*tt(5)*tt(11)*tt(24)+8*tt(2)*tt(8)*tt(23)+4*tt(15)*tt(17
     1   )
      tt(29) = 4*c(2,1)*c(3,1)*tt(10)
      tt(30) = 4*(c(2,1)*c(3,2)+c(2,2)*c(3,1))*tt(12)
      tt(31) = 4*c(2,2)*c(3,2)*tt(14)
      tt(32) = tt(31)+tt(30)+tt(29)+4*tt(15)*tt(19)+8*c(2,2)*c(3,2)*tt(6
     1   )+8*c(2,1)*tt(3)*c(3,1)
      tt(33) = 8*tt(2)*c(2,1)*c(3,1)*tt(8)
      tt(34) = 8*c(2,2)*c(3,2)*tt(5)*tt(11)
      tt(35) = tt(34)+tt(33)+4*tt(15)*tt(21)
      tt(36) = tt(34)+tt(33)+4*tt(17)*tt(19)
      tt(37) = tt(31)+tt(30)+tt(29)+4*tt(17)*tt(21)+8*c(2,2)*c(3,2)*tt(1
     1   3)+8*c(2,1)*c(3,1)*tt(9)
      tt(38) = c(3,1)**2
      tt(39) = c(3,2)**2
      tt(40) = 4*tt(10)*tt(38)
      tt(41) = 8*c(3,1)*c(3,2)*tt(12)
      tt(42) = 4*tt(14)*tt(39)
      tt(43) = 8*tt(5)*tt(11)*tt(39)+8*tt(2)*tt(8)*tt(38)+4*tt(19)*tt(21
     1   )
      E_H(1,1) = 4*tt(4)*tt(14)+8*c(1,1)*c(1,2)*tt(12)+4*tt(1)*tt(10)+4*
     1   tt(7)**2+8*tt(4)*tt(6)+8*tt(1)*tt(3)
      E_H(1,2) = tt(16)
      E_H(1,3) = tt(18)
      E_H(1,4) = tt(20)
      E_H(1,5) = tt(22)
      E_H(2,1) = tt(16)
      E_H(2,2) = tt(27)+tt(26)+tt(25)+8*tt(6)*tt(24)+8*tt(3)*tt(23)+4*tt
     1   (15)**2
      E_H(2,3) = tt(28)
      E_H(2,4) = tt(32)
      E_H(2,5) = tt(35)
      E_H(3,1) = tt(18)
      E_H(3,2) = tt(28)
      E_H(3,3) = tt(27)+tt(26)+tt(25)+8*tt(13)*tt(24)+8*tt(9)*tt(23)+4*t
     1   t(17)**2
      E_H(3,4) = tt(36)
      E_H(3,5) = tt(37)
      E_H(4,1) = tt(20)
      E_H(4,2) = tt(32)
      E_H(4,3) = tt(36)
      E_H(4,4) = tt(42)+tt(41)+tt(40)+8*tt(6)*tt(39)+8*tt(3)*tt(38)+4*tt
     1   (19)**2
      E_H(4,5) = tt(43)
      E_H(5,1) = tt(22)
      E_H(5,2) = tt(35)
      E_H(5,3) = tt(37)
      E_H(5,4) = tt(43)
      E_H(5,5) = tt(42)+tt(41)+tt(40)+8*tt(13)*tt(39)+8*tt(9)*tt(38)+4*t
     1   t(21)**2
      END
